<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-comment">-- |</span><span>
</span><span id="line-2"></span><span class="hs-comment">-- Support for source code annotation feature of GHC. That is the ANN pragma.</span><span>
</span><span id="line-3"></span><span class="hs-comment">--</span><span>
</span><span id="line-4"></span><span class="hs-comment">-- (c) The University of Glasgow 2006</span><span>
</span><span id="line-5"></span><span class="hs-comment">-- (c) The GRASP/AQUA Project, Glasgow University, 1992-1998</span><span>
</span><span id="line-6"></span><span class="hs-comment">--</span><span>
</span><span id="line-7"></span><span class="hs-pragma">{-# LANGUAGE DeriveFunctor #-}</span><span>
</span><span id="line-8"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.Types.Annotations</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-9"></span><span>        </span><span class="annot"><span class="hs-comment">-- * Main Annotation data types</span></span><span>
</span><span id="line-10"></span><span>        </span><span class="annot"><a href="GHC.Types.Annotations.html#Annotation"><span class="hs-identifier">Annotation</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#AnnPayload"><span class="hs-identifier">AnnPayload</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-11"></span><span>        </span><span class="annot"><a href="GHC.Types.Annotations.html#AnnTarget"><span class="hs-identifier">AnnTarget</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#CoreAnnTarget"><span class="hs-identifier">CoreAnnTarget</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-12"></span><span>
</span><span id="line-13"></span><span>        </span><span class="annot"><span class="hs-comment">-- * AnnEnv for collecting and querying Annotations</span></span><span>
</span><span id="line-14"></span><span>        </span><span class="annot"><a href="GHC.Types.Annotations.html#AnnEnv"><span class="hs-identifier">AnnEnv</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-15"></span><span>        </span><span class="annot"><a href="GHC.Types.Annotations.html#mkAnnEnv"><span class="hs-identifier">mkAnnEnv</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#extendAnnEnvList"><span class="hs-identifier">extendAnnEnvList</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#plusAnnEnv"><span class="hs-identifier">plusAnnEnv</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#emptyAnnEnv"><span class="hs-identifier">emptyAnnEnv</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-16"></span><span>        </span><span class="annot"><a href="GHC.Types.Annotations.html#findAnns"><span class="hs-identifier">findAnns</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#findAnnsByTypeRep"><span class="hs-identifier">findAnnsByTypeRep</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-17"></span><span>        </span><span class="annot"><a href="GHC.Types.Annotations.html#deserializeAnns"><span class="hs-identifier">deserializeAnns</span></a></span><span>
</span><span id="line-18"></span><span>    </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-19"></span><span>
</span><span id="line-20"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Prelude.html"><span class="hs-identifier">GHC.Prelude</span></a></span><span>
</span><span id="line-21"></span><span>
</span><span id="line-22"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Binary.html"><span class="hs-identifier">GHC.Utils.Binary</span></a></span><span>
</span><span id="line-23"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Unit.Module.html"><span class="hs-identifier">GHC.Unit.Module</span></a></span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier">Module</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-24"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Unit.Module.Env.html"><span class="hs-identifier">GHC.Unit.Module.Env</span></a></span><span>
</span><span id="line-25"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Name.Env.html"><span class="hs-identifier">GHC.Types.Name.Env</span></a></span><span>
</span><span id="line-26"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Name.html"><span class="hs-identifier">GHC.Types.Name</span></a></span><span>
</span><span id="line-27"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html"><span class="hs-identifier">GHC.Utils.Outputable</span></a></span><span>
</span><span id="line-28"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Serialized.html#"><span class="hs-identifier">GHC.Serialized</span></a></span><span>
</span><span id="line-29"></span><span>
</span><span id="line-30"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Control.Monad.html#"><span class="hs-identifier">Control.Monad</span></a></span><span>
</span><span id="line-31"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Maybe.html#"><span class="hs-identifier">Data.Maybe</span></a></span><span>
</span><span id="line-32"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Typeable.html#"><span class="hs-identifier">Data.Typeable</span></a></span><span>
</span><span id="line-33"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Word.html#"><span class="hs-identifier">Data.Word</span></a></span><span>        </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.Word.html#Word8"><span class="hs-identifier">Word8</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-34"></span><span>
</span><span id="line-35"></span><span>
</span><span id="line-36"></span><span class="hs-comment">-- | Represents an annotation after it has been sufficiently desugared from</span><span>
</span><span id="line-37"></span><span class="hs-comment">-- it's initial form of 'GHC.Hs.Decls.AnnDecl'</span><span>
</span><span id="line-38"></span><span class="hs-keyword">data</span><span> </span><span id="Annotation"><span class="annot"><a href="GHC.Types.Annotations.html#Annotation"><span class="hs-identifier hs-var">Annotation</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="Annotation"><span class="annot"><a href="GHC.Types.Annotations.html#Annotation"><span class="hs-identifier hs-var">Annotation</span></a></span></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-39"></span><span>        </span><span id="ann_target"><span class="annot"><span class="annottext">Annotation -&gt; CoreAnnTarget
</span><a href="GHC.Types.Annotations.html#ann_target"><span class="hs-identifier hs-var hs-var">ann_target</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#CoreAnnTarget"><span class="hs-identifier hs-type">CoreAnnTarget</span></a></span><span class="hs-special">,</span><span>    </span><span class="hs-comment">-- ^ The target of the annotation</span><span>
</span><span id="line-40"></span><span>        </span><span id="ann_value"><span class="annot"><span class="annottext">Annotation -&gt; AnnPayload
</span><a href="GHC.Types.Annotations.html#ann_value"><span class="hs-identifier hs-var hs-var">ann_value</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#AnnPayload"><span class="hs-identifier hs-type">AnnPayload</span></a></span><span>
</span><span id="line-41"></span><span>    </span><span class="hs-special">}</span><span>
</span><span id="line-42"></span><span>
</span><span id="line-43"></span><span class="hs-keyword">type</span><span> </span><span id="AnnPayload"><span class="annot"><a href="GHC.Types.Annotations.html#AnnPayload"><span class="hs-identifier hs-var">AnnPayload</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Serialized.html#Serialized"><span class="hs-identifier hs-type">Serialized</span></a></span><span>    </span><span class="hs-comment">-- ^ The &quot;payload&quot; of an annotation</span><span>
</span><span id="line-44"></span><span>                                </span><span class="hs-comment">--   allows recovery of its value at a given type,</span><span>
</span><span id="line-45"></span><span>                                </span><span class="hs-comment">--   and can be persisted to an interface file</span><span>
</span><span id="line-46"></span><span>
</span><span id="line-47"></span><span class="hs-comment">-- | An annotation target</span><span>
</span><span id="line-48"></span><span class="hs-keyword">data</span><span> </span><span id="AnnTarget"><span class="annot"><a href="GHC.Types.Annotations.html#AnnTarget"><span class="hs-identifier hs-var">AnnTarget</span></a></span></span><span> </span><span id="local-6989586621680847242"><span class="annot"><a href="#local-6989586621680847242"><span class="hs-identifier hs-type">name</span></a></span></span><span>
</span><span id="line-49"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="NamedTarget"><span class="annot"><a href="GHC.Types.Annotations.html#NamedTarget"><span class="hs-identifier hs-var">NamedTarget</span></a></span></span><span> </span><span class="annot"><a href="#local-6989586621680847242"><span class="hs-identifier hs-type">name</span></a></span><span>          </span><span class="hs-comment">-- ^ We are annotating something with a name:</span><span>
</span><span id="line-50"></span><span>                              </span><span class="hs-comment">--      a type or identifier</span><span>
</span><span id="line-51"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="ModuleTarget"><span class="annot"><a href="GHC.Types.Annotations.html#ModuleTarget"><span class="hs-identifier hs-var">ModuleTarget</span></a></span></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span>       </span><span class="hs-comment">-- ^ We are annotating a particular module</span><span>
</span><span id="line-52"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680847177"><span id="local-6989586621680847179"><span class="annot"><span class="annottext">(forall a b. (a -&gt; b) -&gt; AnnTarget a -&gt; AnnTarget b)
-&gt; (forall a b. a -&gt; AnnTarget b -&gt; AnnTarget a)
-&gt; Functor AnnTarget
forall a b. a -&gt; AnnTarget b -&gt; AnnTarget a
forall a b. (a -&gt; b) -&gt; AnnTarget a -&gt; AnnTarget b
forall (f :: * -&gt; *).
(forall a b. (a -&gt; b) -&gt; f a -&gt; f b)
-&gt; (forall a b. a -&gt; f b -&gt; f a) -&gt; Functor f
&lt;$ :: forall a b. a -&gt; AnnTarget b -&gt; AnnTarget a
$c&lt;$ :: forall a b. a -&gt; AnnTarget b -&gt; AnnTarget a
fmap :: forall a b. (a -&gt; b) -&gt; AnnTarget a -&gt; AnnTarget b
$cfmap :: forall a b. (a -&gt; b) -&gt; AnnTarget a -&gt; AnnTarget b
</span><a href="../../base/src/GHC.Base.html#Functor"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Functor</span></a></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-53"></span><span>
</span><span id="line-54"></span><span class="hs-comment">-- | The kind of annotation target found in the middle end of the compiler</span><span>
</span><span id="line-55"></span><span class="hs-keyword">type</span><span> </span><span id="CoreAnnTarget"><span class="annot"><a href="GHC.Types.Annotations.html#CoreAnnTarget"><span class="hs-identifier hs-var">CoreAnnTarget</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#AnnTarget"><span class="hs-identifier hs-type">AnnTarget</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span>
</span><span id="line-56"></span><span>
</span><span id="line-57"></span><span id="local-6989586621680847255"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680847172"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680847255"><span class="hs-identifier hs-type">name</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Annotations.html#AnnTarget"><span class="hs-identifier hs-type">AnnTarget</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680847255"><span class="hs-identifier hs-type">name</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-58"></span><span>    </span><span id="local-6989586621680847167"><span class="annot"><span class="annottext">ppr :: AnnTarget name -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Annotations.html#NamedTarget"><span class="hs-identifier hs-type">NamedTarget</span></a></span><span> </span><span id="local-6989586621680847165"><span class="annot"><span class="annottext">name
</span><a href="#local-6989586621680847165"><span class="hs-identifier hs-var">nm</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Named target&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">name -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">name
</span><a href="#local-6989586621680847165"><span class="hs-identifier hs-var">nm</span></a></span><span>
</span><span id="line-59"></span><span>    </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Annotations.html#ModuleTarget"><span class="hs-identifier hs-type">ModuleTarget</span></a></span><span> </span><span id="local-6989586621680847162"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680847162"><span class="hs-identifier hs-var">mod</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Module target&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Module -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680847162"><span class="hs-identifier hs-var">mod</span></a></span></span><span>
</span><span id="line-60"></span><span>
</span><span id="line-61"></span><span id="local-6989586621680847250"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680847159"><span class="annot"><a href="GHC.Utils.Binary.html#Binary"><span class="hs-identifier hs-type">Binary</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680847250"><span class="hs-identifier hs-type">name</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Binary.html#Binary"><span class="hs-identifier hs-type">Binary</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Annotations.html#AnnTarget"><span class="hs-identifier hs-type">AnnTarget</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680847250"><span class="hs-identifier hs-type">name</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-62"></span><span>    </span><span id="local-6989586621680847145"><span class="annot"><span class="annottext">put_ :: BinHandle -&gt; AnnTarget name -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var hs-var hs-var hs-var">put_</span></a></span></span><span> </span><span id="local-6989586621680847143"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680847143"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Annotations.html#NamedTarget"><span class="hs-identifier hs-type">NamedTarget</span></a></span><span> </span><span id="local-6989586621680847142"><span class="annot"><span class="annottext">name
</span><a href="#local-6989586621680847142"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-63"></span><span>        </span><span class="annot"><span class="annottext">BinHandle -&gt; Word8 -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#putByte"><span class="hs-identifier hs-var">putByte</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680847143"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">0</span></span><span>
</span><span id="line-64"></span><span>        </span><span class="annot"><span class="annottext">BinHandle -&gt; name -&gt; IO ()
forall a. Binary a =&gt; BinHandle -&gt; a -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var">put_</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680847143"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="annot"><span class="annottext">name
</span><a href="#local-6989586621680847142"><span class="hs-identifier hs-var">a</span></a></span><span>
</span><span id="line-65"></span><span>    </span><span class="annot"><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var">put_</span></a></span><span> </span><span id="local-6989586621680847140"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680847140"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Annotations.html#ModuleTarget"><span class="hs-identifier hs-type">ModuleTarget</span></a></span><span> </span><span id="local-6989586621680847139"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680847139"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-66"></span><span>        </span><span class="annot"><span class="annottext">BinHandle -&gt; Word8 -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#putByte"><span class="hs-identifier hs-var">putByte</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680847140"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">1</span></span><span>
</span><span id="line-67"></span><span>        </span><span class="annot"><span class="annottext">BinHandle -&gt; Module -&gt; IO ()
forall a. Binary a =&gt; BinHandle -&gt; a -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var">put_</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680847140"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680847139"><span class="hs-identifier hs-var">a</span></a></span><span>
</span><span id="line-68"></span><span>    </span><span id="local-6989586621680847129"><span class="annot"><span class="annottext">get :: BinHandle -&gt; IO (AnnTarget name)
</span><a href="GHC.Utils.Binary.html#get"><span class="hs-identifier hs-var hs-var hs-var hs-var">get</span></a></span></span><span> </span><span id="local-6989586621680847127"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680847127"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-69"></span><span>        </span><span id="local-6989586621680847126"><span class="annot"><span class="annottext">Word8
</span><a href="#local-6989586621680847126"><span class="hs-identifier hs-var">h</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; IO Word8
</span><a href="GHC.Utils.Binary.html#getByte"><span class="hs-identifier hs-var">getByte</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680847127"><span class="hs-identifier hs-var">bh</span></a></span><span>
</span><span id="line-70"></span><span>        </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="#local-6989586621680847126"><span class="hs-identifier hs-var">h</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-71"></span><span>            </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">0</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(name -&gt; AnnTarget name) -&gt; IO name -&gt; IO (AnnTarget name)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="annot"><span class="annottext">name -&gt; AnnTarget name
forall name. name -&gt; AnnTarget name
</span><a href="GHC.Types.Annotations.html#NamedTarget"><span class="hs-identifier hs-var">NamedTarget</span></a></span><span>  </span><span class="annot"><span class="annottext">(IO name -&gt; IO (AnnTarget name)) -&gt; IO name -&gt; IO (AnnTarget name)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; IO name
forall a. Binary a =&gt; BinHandle -&gt; IO a
</span><a href="GHC.Utils.Binary.html#get"><span class="hs-identifier hs-var">get</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680847127"><span class="hs-identifier hs-var">bh</span></a></span><span>
</span><span id="line-72"></span><span>            </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(Module -&gt; AnnTarget name) -&gt; IO Module -&gt; IO (AnnTarget name)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="annot"><span class="annottext">Module -&gt; AnnTarget name
forall name. Module -&gt; AnnTarget name
</span><a href="GHC.Types.Annotations.html#ModuleTarget"><span class="hs-identifier hs-var">ModuleTarget</span></a></span><span> </span><span class="annot"><span class="annottext">(IO Module -&gt; IO (AnnTarget name))
-&gt; IO Module -&gt; IO (AnnTarget name)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; IO Module
forall a. Binary a =&gt; BinHandle -&gt; IO a
</span><a href="GHC.Utils.Binary.html#get"><span class="hs-identifier hs-var">get</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680847127"><span class="hs-identifier hs-var">bh</span></a></span></span><span>
</span><span id="line-73"></span><span>
</span><span id="line-74"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680847121"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#Annotation"><span class="hs-identifier hs-type">Annotation</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-75"></span><span>    </span><span id="local-6989586621680847117"><span class="annot"><span class="annottext">ppr :: Annotation -&gt; SDoc
</span><a href="#local-6989586621680847117"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680847116"><span class="annot"><span class="annottext">Annotation
</span><a href="#local-6989586621680847116"><span class="hs-identifier hs-var">ann</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CoreAnnTarget -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Annotation -&gt; CoreAnnTarget
</span><a href="GHC.Types.Annotations.html#ann_target"><span class="hs-identifier hs-var hs-var">ann_target</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation
</span><a href="#local-6989586621680847116"><span class="hs-identifier hs-var">ann</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-76"></span><span>
</span><span id="line-77"></span><span class="hs-comment">-- | A collection of annotations</span><span>
</span><span id="line-78"></span><span class="hs-keyword">data</span><span> </span><span id="AnnEnv"><span class="annot"><a href="GHC.Types.Annotations.html#AnnEnv"><span class="hs-identifier hs-var">AnnEnv</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="MkAnnEnv"><span class="annot"><a href="GHC.Types.Annotations.html#MkAnnEnv"><span class="hs-identifier hs-var">MkAnnEnv</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="ann_mod_env"><span class="annot"><span class="annottext">AnnEnv -&gt; ModuleEnv [AnnPayload]
</span><a href="GHC.Types.Annotations.html#ann_mod_env"><span class="hs-identifier hs-var hs-var">ann_mod_env</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Module.Env.html#ModuleEnv"><span class="hs-identifier hs-type">ModuleEnv</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Annotations.html#AnnPayload"><span class="hs-identifier hs-type">AnnPayload</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-79"></span><span>                       </span><span class="hs-special">,</span><span> </span><span id="ann_name_env"><span class="annot"><span class="annottext">AnnEnv -&gt; NameEnv [AnnPayload]
</span><a href="GHC.Types.Annotations.html#ann_name_env"><span class="hs-identifier hs-var hs-var">ann_name_env</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Name.Env.html#NameEnv"><span class="hs-identifier hs-type">NameEnv</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Annotations.html#AnnPayload"><span class="hs-identifier hs-type">AnnPayload</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-80"></span><span>                       </span><span class="hs-special">}</span><span>
</span><span id="line-81"></span><span>
</span><span id="line-82"></span><span class="hs-comment">-- | An empty annotation environment.</span><span>
</span><span id="line-83"></span><span class="annot"><a href="GHC.Types.Annotations.html#emptyAnnEnv"><span class="hs-identifier hs-type">emptyAnnEnv</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#AnnEnv"><span class="hs-identifier hs-type">AnnEnv</span></a></span><span>
</span><span id="line-84"></span><span id="emptyAnnEnv"><span class="annot"><span class="annottext">emptyAnnEnv :: AnnEnv
</span><a href="GHC.Types.Annotations.html#emptyAnnEnv"><span class="hs-identifier hs-var hs-var">emptyAnnEnv</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ModuleEnv [AnnPayload] -&gt; NameEnv [AnnPayload] -&gt; AnnEnv
</span><a href="GHC.Types.Annotations.html#MkAnnEnv"><span class="hs-identifier hs-var">MkAnnEnv</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleEnv [AnnPayload]
forall a. ModuleEnv a
</span><a href="GHC.Unit.Module.Env.html#emptyModuleEnv"><span class="hs-identifier hs-var">emptyModuleEnv</span></a></span><span> </span><span class="annot"><span class="annottext">NameEnv [AnnPayload]
forall a. NameEnv a
</span><a href="GHC.Types.Name.Env.html#emptyNameEnv"><span class="hs-identifier hs-var">emptyNameEnv</span></a></span><span>
</span><span id="line-85"></span><span>
</span><span id="line-86"></span><span class="hs-comment">-- | Construct a new annotation environment that contains the list of</span><span>
</span><span id="line-87"></span><span class="hs-comment">-- annotations provided.</span><span>
</span><span id="line-88"></span><span class="annot"><a href="GHC.Types.Annotations.html#mkAnnEnv"><span class="hs-identifier hs-type">mkAnnEnv</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Annotations.html#Annotation"><span class="hs-identifier hs-type">Annotation</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#AnnEnv"><span class="hs-identifier hs-type">AnnEnv</span></a></span><span>
</span><span id="line-89"></span><span id="mkAnnEnv"><span class="annot"><span class="annottext">mkAnnEnv :: [Annotation] -&gt; AnnEnv
</span><a href="GHC.Types.Annotations.html#mkAnnEnv"><span class="hs-identifier hs-var hs-var">mkAnnEnv</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">AnnEnv -&gt; [Annotation] -&gt; AnnEnv
</span><a href="GHC.Types.Annotations.html#extendAnnEnvList"><span class="hs-identifier hs-var">extendAnnEnvList</span></a></span><span> </span><span class="annot"><span class="annottext">AnnEnv
</span><a href="GHC.Types.Annotations.html#emptyAnnEnv"><span class="hs-identifier hs-var">emptyAnnEnv</span></a></span><span>
</span><span id="line-90"></span><span>
</span><span id="line-91"></span><span class="hs-comment">-- | Add the given annotation to the environment.</span><span>
</span><span id="line-92"></span><span class="annot"><a href="GHC.Types.Annotations.html#extendAnnEnvList"><span class="hs-identifier hs-type">extendAnnEnvList</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#AnnEnv"><span class="hs-identifier hs-type">AnnEnv</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Annotations.html#Annotation"><span class="hs-identifier hs-type">Annotation</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#AnnEnv"><span class="hs-identifier hs-type">AnnEnv</span></a></span><span>
</span><span id="line-93"></span><span id="extendAnnEnvList"><span class="annot"><span class="annottext">extendAnnEnvList :: AnnEnv -&gt; [Annotation] -&gt; AnnEnv
</span><a href="GHC.Types.Annotations.html#extendAnnEnvList"><span class="hs-identifier hs-var hs-var">extendAnnEnvList</span></a></span></span><span> </span><span id="local-6989586621680847110"><span class="annot"><span class="annottext">AnnEnv
</span><a href="#local-6989586621680847110"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-94"></span><span>  </span><span class="annot"><span class="annottext">(AnnEnv -&gt; Annotation -&gt; AnnEnv)
-&gt; AnnEnv -&gt; [Annotation] -&gt; AnnEnv
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="annot"><span class="annottext">AnnEnv -&gt; Annotation -&gt; AnnEnv
</span><a href="GHC.Types.Annotations.html#extendAnnEnv"><span class="hs-identifier hs-var">extendAnnEnv</span></a></span><span> </span><span class="annot"><span class="annottext">AnnEnv
</span><a href="#local-6989586621680847110"><span class="hs-identifier hs-var">env</span></a></span><span>
</span><span id="line-95"></span><span>
</span><span id="line-96"></span><span class="annot"><a href="GHC.Types.Annotations.html#extendAnnEnv"><span class="hs-identifier hs-type">extendAnnEnv</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#AnnEnv"><span class="hs-identifier hs-type">AnnEnv</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#Annotation"><span class="hs-identifier hs-type">Annotation</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#AnnEnv"><span class="hs-identifier hs-type">AnnEnv</span></a></span><span>
</span><span id="line-97"></span><span id="extendAnnEnv"><span class="annot"><span class="annottext">extendAnnEnv :: AnnEnv -&gt; Annotation -&gt; AnnEnv
</span><a href="GHC.Types.Annotations.html#extendAnnEnv"><span class="hs-identifier hs-var hs-var">extendAnnEnv</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Annotations.html#MkAnnEnv"><span class="hs-identifier hs-type">MkAnnEnv</span></a></span><span> </span><span id="local-6989586621680847107"><span class="annot"><span class="annottext">ModuleEnv [AnnPayload]
</span><a href="#local-6989586621680847107"><span class="hs-identifier hs-var">mod_env</span></a></span></span><span> </span><span id="local-6989586621680847106"><span class="annot"><span class="annottext">NameEnv [AnnPayload]
</span><a href="#local-6989586621680847106"><span class="hs-identifier hs-var">name_env</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Annotations.html#Annotation"><span class="hs-identifier hs-type">Annotation</span></a></span><span> </span><span id="local-6989586621680847105"><span class="annot"><span class="annottext">CoreAnnTarget
</span><a href="#local-6989586621680847105"><span class="hs-identifier hs-var">tgt</span></a></span></span><span> </span><span id="local-6989586621680847104"><span class="annot"><span class="annottext">AnnPayload
</span><a href="#local-6989586621680847104"><span class="hs-identifier hs-var">payload</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-98"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">CoreAnnTarget
</span><a href="#local-6989586621680847105"><span class="hs-identifier hs-var">tgt</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-99"></span><span>    </span><span class="annot"><a href="GHC.Types.Annotations.html#NamedTarget"><span class="hs-identifier hs-type">NamedTarget</span></a></span><span> </span><span id="local-6989586621680847103"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621680847103"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">ModuleEnv [AnnPayload] -&gt; NameEnv [AnnPayload] -&gt; AnnEnv
</span><a href="GHC.Types.Annotations.html#MkAnnEnv"><span class="hs-identifier hs-var">MkAnnEnv</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleEnv [AnnPayload]
</span><a href="#local-6989586621680847107"><span class="hs-identifier hs-var">mod_env</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">([AnnPayload] -&gt; [AnnPayload] -&gt; [AnnPayload])
-&gt; NameEnv [AnnPayload]
-&gt; Name
-&gt; [AnnPayload]
-&gt; NameEnv [AnnPayload]
forall a. (a -&gt; a -&gt; a) -&gt; NameEnv a -&gt; Name -&gt; a -&gt; NameEnv a
</span><a href="GHC.Types.Name.Env.html#extendNameEnv_C"><span class="hs-identifier hs-var">extendNameEnv_C</span></a></span><span> </span><span class="annot"><span class="annottext">[AnnPayload] -&gt; [AnnPayload] -&gt; [AnnPayload]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">(++)</span></a></span><span> </span><span class="annot"><span class="annottext">NameEnv [AnnPayload]
</span><a href="#local-6989586621680847106"><span class="hs-identifier hs-var">name_env</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621680847103"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">AnnPayload
</span><a href="#local-6989586621680847104"><span class="hs-identifier hs-var">payload</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-100"></span><span>    </span><span class="annot"><a href="GHC.Types.Annotations.html#ModuleTarget"><span class="hs-identifier hs-type">ModuleTarget</span></a></span><span> </span><span id="local-6989586621680847101"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680847101"><span class="hs-identifier hs-var">mod</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">ModuleEnv [AnnPayload] -&gt; NameEnv [AnnPayload] -&gt; AnnEnv
</span><a href="GHC.Types.Annotations.html#MkAnnEnv"><span class="hs-identifier hs-var">MkAnnEnv</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">([AnnPayload] -&gt; [AnnPayload] -&gt; [AnnPayload])
-&gt; ModuleEnv [AnnPayload]
-&gt; Module
-&gt; [AnnPayload]
-&gt; ModuleEnv [AnnPayload]
forall a.
(a -&gt; a -&gt; a) -&gt; ModuleEnv a -&gt; Module -&gt; a -&gt; ModuleEnv a
</span><a href="GHC.Unit.Module.Env.html#extendModuleEnvWith"><span class="hs-identifier hs-var">extendModuleEnvWith</span></a></span><span> </span><span class="annot"><span class="annottext">[AnnPayload] -&gt; [AnnPayload] -&gt; [AnnPayload]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">(++)</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleEnv [AnnPayload]
</span><a href="#local-6989586621680847107"><span class="hs-identifier hs-var">mod_env</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680847101"><span class="hs-identifier hs-var">mod</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">AnnPayload
</span><a href="#local-6989586621680847104"><span class="hs-identifier hs-var">payload</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">NameEnv [AnnPayload]
</span><a href="#local-6989586621680847106"><span class="hs-identifier hs-var">name_env</span></a></span><span>
</span><span id="line-101"></span><span>
</span><span id="line-102"></span><span class="hs-comment">-- | Union two annotation environments.</span><span>
</span><span id="line-103"></span><span class="annot"><a href="GHC.Types.Annotations.html#plusAnnEnv"><span class="hs-identifier hs-type">plusAnnEnv</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#AnnEnv"><span class="hs-identifier hs-type">AnnEnv</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#AnnEnv"><span class="hs-identifier hs-type">AnnEnv</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#AnnEnv"><span class="hs-identifier hs-type">AnnEnv</span></a></span><span>
</span><span id="line-104"></span><span id="plusAnnEnv"><span class="annot"><span class="annottext">plusAnnEnv :: AnnEnv -&gt; AnnEnv -&gt; AnnEnv
</span><a href="GHC.Types.Annotations.html#plusAnnEnv"><span class="hs-identifier hs-var hs-var">plusAnnEnv</span></a></span></span><span> </span><span id="local-6989586621680847099"><span class="annot"><span class="annottext">AnnEnv
</span><a href="#local-6989586621680847099"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621680847098"><span class="annot"><span class="annottext">AnnEnv
</span><a href="#local-6989586621680847098"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-105"></span><span>  </span><span class="annot"><span class="annottext">MkAnnEnv :: ModuleEnv [AnnPayload] -&gt; NameEnv [AnnPayload] -&gt; AnnEnv
</span><a href="GHC.Types.Annotations.html#MkAnnEnv"><span class="hs-identifier hs-type">MkAnnEnv</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">ann_mod_env :: ModuleEnv [AnnPayload]
</span><a href="GHC.Types.Annotations.html#ann_mod_env"><span class="hs-identifier hs-var">ann_mod_env</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">([AnnPayload] -&gt; [AnnPayload] -&gt; [AnnPayload])
-&gt; ModuleEnv [AnnPayload]
-&gt; ModuleEnv [AnnPayload]
-&gt; ModuleEnv [AnnPayload]
forall a.
(a -&gt; a -&gt; a) -&gt; ModuleEnv a -&gt; ModuleEnv a -&gt; ModuleEnv a
</span><a href="GHC.Unit.Module.Env.html#plusModuleEnv_C"><span class="hs-identifier hs-var">plusModuleEnv_C</span></a></span><span> </span><span class="annot"><span class="annottext">[AnnPayload] -&gt; [AnnPayload] -&gt; [AnnPayload]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">(++)</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">AnnEnv -&gt; ModuleEnv [AnnPayload]
</span><a href="GHC.Types.Annotations.html#ann_mod_env"><span class="hs-identifier hs-var hs-var">ann_mod_env</span></a></span><span> </span><span class="annot"><span class="annottext">AnnEnv
</span><a href="#local-6989586621680847099"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">AnnEnv -&gt; ModuleEnv [AnnPayload]
</span><a href="GHC.Types.Annotations.html#ann_mod_env"><span class="hs-identifier hs-var hs-var">ann_mod_env</span></a></span><span> </span><span class="annot"><span class="annottext">AnnEnv
</span><a href="#local-6989586621680847098"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-106"></span><span>           </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ann_name_env :: NameEnv [AnnPayload]
</span><a href="GHC.Types.Annotations.html#ann_name_env"><span class="hs-identifier hs-var">ann_name_env</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">([AnnPayload] -&gt; [AnnPayload] -&gt; [AnnPayload])
-&gt; NameEnv [AnnPayload]
-&gt; NameEnv [AnnPayload]
-&gt; NameEnv [AnnPayload]
forall a. (a -&gt; a -&gt; a) -&gt; NameEnv a -&gt; NameEnv a -&gt; NameEnv a
</span><a href="GHC.Types.Name.Env.html#plusNameEnv_C"><span class="hs-identifier hs-var">plusNameEnv_C</span></a></span><span> </span><span class="annot"><span class="annottext">[AnnPayload] -&gt; [AnnPayload] -&gt; [AnnPayload]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">(++)</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">AnnEnv -&gt; NameEnv [AnnPayload]
</span><a href="GHC.Types.Annotations.html#ann_name_env"><span class="hs-identifier hs-var hs-var">ann_name_env</span></a></span><span> </span><span class="annot"><span class="annottext">AnnEnv
</span><a href="#local-6989586621680847099"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">AnnEnv -&gt; NameEnv [AnnPayload]
</span><a href="GHC.Types.Annotations.html#ann_name_env"><span class="hs-identifier hs-var hs-var">ann_name_env</span></a></span><span> </span><span class="annot"><span class="annottext">AnnEnv
</span><a href="#local-6989586621680847098"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-107"></span><span>           </span><span class="hs-special">}</span><span>
</span><span id="line-108"></span><span>
</span><span id="line-109"></span><span class="hs-comment">-- | Find the annotations attached to the given target as 'Typeable'</span><span>
</span><span id="line-110"></span><span class="hs-comment">--   values of your choice. If no deserializer is specified,</span><span>
</span><span id="line-111"></span><span class="hs-comment">--   only transient annotations will be returned.</span><span>
</span><span id="line-112"></span><span id="local-6989586621680847224"><span class="annot"><a href="GHC.Types.Annotations.html#findAnns"><span class="hs-identifier hs-type">findAnns</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/Data.Typeable.Internal.html#Typeable"><span class="hs-identifier hs-type">Typeable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680847224"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Word.html#Word8"><span class="hs-identifier hs-type">Word8</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680847224"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#AnnEnv"><span class="hs-identifier hs-type">AnnEnv</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#CoreAnnTarget"><span class="hs-identifier hs-type">CoreAnnTarget</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680847224"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span></span><span>
</span><span id="line-113"></span><span id="findAnns"><span class="annot"><span class="annottext">findAnns :: forall a.
Typeable a =&gt;
([Word8] -&gt; a) -&gt; AnnEnv -&gt; CoreAnnTarget -&gt; [a]
</span><a href="GHC.Types.Annotations.html#findAnns"><span class="hs-identifier hs-var hs-var">findAnns</span></a></span></span><span> </span><span id="local-6989586621680847093"><span class="annot"><span class="annottext">[Word8] -&gt; a
</span><a href="#local-6989586621680847093"><span class="hs-identifier hs-var">deserialize</span></a></span></span><span> </span><span id="local-6989586621680847092"><span class="annot"><span class="annottext">AnnEnv
</span><a href="#local-6989586621680847092"><span class="hs-identifier hs-var">env</span></a></span></span><span>
</span><span id="line-114"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(AnnPayload -&gt; Maybe a) -&gt; [AnnPayload] -&gt; [a]
forall a b. (a -&gt; Maybe b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/Data.Maybe.html#mapMaybe"><span class="hs-identifier hs-var">mapMaybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">([Word8] -&gt; a) -&gt; AnnPayload -&gt; Maybe a
forall a. Typeable a =&gt; ([Word8] -&gt; a) -&gt; AnnPayload -&gt; Maybe a
</span><a href="../../ghc-boot/src/GHC.Serialized.html#fromSerialized"><span class="hs-identifier hs-var">fromSerialized</span></a></span><span> </span><span class="annot"><span class="annottext">[Word8] -&gt; a
</span><a href="#local-6989586621680847093"><span class="hs-identifier hs-var">deserialize</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([AnnPayload] -&gt; [a])
-&gt; (CoreAnnTarget -&gt; [AnnPayload]) -&gt; CoreAnnTarget -&gt; [a]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">AnnEnv -&gt; CoreAnnTarget -&gt; [AnnPayload]
</span><a href="GHC.Types.Annotations.html#findAnnPayloads"><span class="hs-identifier hs-var">findAnnPayloads</span></a></span><span> </span><span class="annot"><span class="annottext">AnnEnv
</span><a href="#local-6989586621680847092"><span class="hs-identifier hs-var">env</span></a></span><span>
</span><span id="line-115"></span><span>
</span><span id="line-116"></span><span class="hs-comment">-- | Find the annotations attached to the given target as 'Typeable'</span><span>
</span><span id="line-117"></span><span class="hs-comment">--   values of your choice. If no deserializer is specified,</span><span>
</span><span id="line-118"></span><span class="hs-comment">--   only transient annotations will be returned.</span><span>
</span><span id="line-119"></span><span class="annot"><a href="GHC.Types.Annotations.html#findAnnsByTypeRep"><span class="hs-identifier hs-type">findAnnsByTypeRep</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#AnnEnv"><span class="hs-identifier hs-type">AnnEnv</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#CoreAnnTarget"><span class="hs-identifier hs-type">CoreAnnTarget</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/Data.Typeable.html#TypeRep"><span class="hs-identifier hs-type">TypeRep</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Word.html#Word8"><span class="hs-identifier hs-type">Word8</span></a></span><span class="hs-special">]</span><span class="hs-special">]</span><span>
</span><span id="line-120"></span><span id="findAnnsByTypeRep"><span class="annot"><span class="annottext">findAnnsByTypeRep :: AnnEnv -&gt; CoreAnnTarget -&gt; TypeRep -&gt; [[Word8]]
</span><a href="GHC.Types.Annotations.html#findAnnsByTypeRep"><span class="hs-identifier hs-var hs-var">findAnnsByTypeRep</span></a></span></span><span> </span><span id="local-6989586621680847087"><span class="annot"><span class="annottext">AnnEnv
</span><a href="#local-6989586621680847087"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span id="local-6989586621680847086"><span class="annot"><span class="annottext">CoreAnnTarget
</span><a href="#local-6989586621680847086"><span class="hs-identifier hs-var">target</span></a></span></span><span> </span><span id="local-6989586621680847085"><span class="annot"><span class="annottext">TypeRep
</span><a href="#local-6989586621680847085"><span class="hs-identifier hs-var">tyrep</span></a></span></span><span>
</span><span id="line-121"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">[Word8]
</span><a href="#local-6989586621680847084"><span class="hs-identifier hs-var">ws</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Serialized.html#Serialized"><span class="hs-identifier hs-type">Serialized</span></a></span><span> </span><span id="local-6989586621680847082"><span class="annot"><span class="annottext">TypeRep
</span><a href="#local-6989586621680847082"><span class="hs-identifier hs-var">tyrep'</span></a></span></span><span> </span><span id="local-6989586621680847084"><span class="annot"><span class="annottext">[Word8]
</span><a href="#local-6989586621680847084"><span class="hs-identifier hs-var">ws</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">AnnEnv -&gt; CoreAnnTarget -&gt; [AnnPayload]
</span><a href="GHC.Types.Annotations.html#findAnnPayloads"><span class="hs-identifier hs-var">findAnnPayloads</span></a></span><span> </span><span class="annot"><span class="annottext">AnnEnv
</span><a href="#local-6989586621680847087"><span class="hs-identifier hs-var">env</span></a></span><span> </span><span class="annot"><span class="annottext">CoreAnnTarget
</span><a href="#local-6989586621680847086"><span class="hs-identifier hs-var">target</span></a></span><span>
</span><span id="line-122"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">TypeRep
</span><a href="#local-6989586621680847082"><span class="hs-identifier hs-var">tyrep'</span></a></span><span> </span><span class="annot"><span class="annottext">TypeRep -&gt; TypeRep -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">TypeRep
</span><a href="#local-6989586621680847085"><span class="hs-identifier hs-var">tyrep</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-123"></span><span>
</span><span id="line-124"></span><span class="hs-comment">-- | Find payloads for the given 'CoreAnnTarget' in an 'AnnEnv'.</span><span>
</span><span id="line-125"></span><span class="annot"><a href="GHC.Types.Annotations.html#findAnnPayloads"><span class="hs-identifier hs-type">findAnnPayloads</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#AnnEnv"><span class="hs-identifier hs-type">AnnEnv</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#CoreAnnTarget"><span class="hs-identifier hs-type">CoreAnnTarget</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Annotations.html#AnnPayload"><span class="hs-identifier hs-type">AnnPayload</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-126"></span><span id="findAnnPayloads"><span class="annot"><span class="annottext">findAnnPayloads :: AnnEnv -&gt; CoreAnnTarget -&gt; [AnnPayload]
</span><a href="GHC.Types.Annotations.html#findAnnPayloads"><span class="hs-identifier hs-var hs-var">findAnnPayloads</span></a></span></span><span> </span><span id="local-6989586621680847081"><span class="annot"><span class="annottext">AnnEnv
</span><a href="#local-6989586621680847081"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span id="local-6989586621680847080"><span class="annot"><span class="annottext">CoreAnnTarget
</span><a href="#local-6989586621680847080"><span class="hs-identifier hs-var">target</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-127"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">CoreAnnTarget
</span><a href="#local-6989586621680847080"><span class="hs-identifier hs-var">target</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-128"></span><span>    </span><span class="annot"><a href="GHC.Types.Annotations.html#ModuleTarget"><span class="hs-identifier hs-type">ModuleTarget</span></a></span><span> </span><span id="local-6989586621680847079"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680847079"><span class="hs-identifier hs-var">mod</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">ModuleEnv [AnnPayload] -&gt; [AnnPayload] -&gt; Module -&gt; [AnnPayload]
forall a. ModuleEnv a -&gt; a -&gt; Module -&gt; a
</span><a href="GHC.Unit.Module.Env.html#lookupWithDefaultModuleEnv"><span class="hs-identifier hs-var">lookupWithDefaultModuleEnv</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">AnnEnv -&gt; ModuleEnv [AnnPayload]
</span><a href="GHC.Types.Annotations.html#ann_mod_env"><span class="hs-identifier hs-var hs-var">ann_mod_env</span></a></span><span> </span><span class="annot"><span class="annottext">AnnEnv
</span><a href="#local-6989586621680847081"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680847079"><span class="hs-identifier hs-var">mod</span></a></span><span>
</span><span id="line-129"></span><span>    </span><span class="annot"><a href="GHC.Types.Annotations.html#NamedTarget"><span class="hs-identifier hs-type">NamedTarget</span></a></span><span> </span><span id="local-6989586621680847077"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621680847077"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[AnnPayload] -&gt; Maybe [AnnPayload] -&gt; [AnnPayload]
forall a. a -&gt; Maybe a -&gt; a
</span><a href="../../base/src/Data.Maybe.html#fromMaybe"><span class="hs-identifier hs-var">fromMaybe</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">(Maybe [AnnPayload] -&gt; [AnnPayload])
-&gt; Maybe [AnnPayload] -&gt; [AnnPayload]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">NameEnv [AnnPayload] -&gt; Name -&gt; Maybe [AnnPayload]
forall a. NameEnv a -&gt; Name -&gt; Maybe a
</span><a href="GHC.Types.Name.Env.html#lookupNameEnv"><span class="hs-identifier hs-var">lookupNameEnv</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">AnnEnv -&gt; NameEnv [AnnPayload]
</span><a href="GHC.Types.Annotations.html#ann_name_env"><span class="hs-identifier hs-var hs-var">ann_name_env</span></a></span><span> </span><span class="annot"><span class="annottext">AnnEnv
</span><a href="#local-6989586621680847081"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621680847077"><span class="hs-identifier hs-var">name</span></a></span><span>
</span><span id="line-130"></span><span>
</span><span id="line-131"></span><span class="hs-comment">-- | Deserialize all annotations of a given type. This happens lazily, that is</span><span>
</span><span id="line-132"></span><span class="hs-comment">--   no deserialization will take place until the [a] is actually demanded and</span><span>
</span><span id="line-133"></span><span class="hs-comment">--   the [a] can also be empty (the UniqFM is not filtered).</span><span>
</span><span id="line-134"></span><span id="local-6989586621680847211"><span class="annot"><a href="GHC.Types.Annotations.html#deserializeAnns"><span class="hs-identifier hs-type">deserializeAnns</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/Data.Typeable.Internal.html#Typeable"><span class="hs-identifier hs-type">Typeable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680847211"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Word.html#Word8"><span class="hs-identifier hs-type">Word8</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680847211"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Annotations.html#AnnEnv"><span class="hs-identifier hs-type">AnnEnv</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Module.Env.html#ModuleEnv"><span class="hs-identifier hs-type">ModuleEnv</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680847211"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Name.Env.html#NameEnv"><span class="hs-identifier hs-type">NameEnv</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680847211"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span></span><span>
</span><span id="line-135"></span><span id="deserializeAnns"><span class="annot"><span class="annottext">deserializeAnns :: forall a.
Typeable a =&gt;
([Word8] -&gt; a) -&gt; AnnEnv -&gt; (ModuleEnv [a], NameEnv [a])
</span><a href="GHC.Types.Annotations.html#deserializeAnns"><span class="hs-identifier hs-var hs-var">deserializeAnns</span></a></span></span><span> </span><span id="local-6989586621680847073"><span class="annot"><span class="annottext">[Word8] -&gt; a
</span><a href="#local-6989586621680847073"><span class="hs-identifier hs-var">deserialize</span></a></span></span><span> </span><span id="local-6989586621680847072"><span class="annot"><span class="annottext">AnnEnv
</span><a href="#local-6989586621680847072"><span class="hs-identifier hs-var">env</span></a></span></span><span>
</span><span id="line-136"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><span class="annottext">([AnnPayload] -&gt; [a]) -&gt; ModuleEnv [AnnPayload] -&gt; ModuleEnv [a]
forall a b. (a -&gt; b) -&gt; ModuleEnv a -&gt; ModuleEnv b
</span><a href="GHC.Unit.Module.Env.html#mapModuleEnv"><span class="hs-identifier hs-var">mapModuleEnv</span></a></span><span> </span><span class="annot"><span class="annottext">[AnnPayload] -&gt; [a]
</span><a href="#local-6989586621680847070"><span class="hs-identifier hs-var">deserAnns</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">AnnEnv -&gt; ModuleEnv [AnnPayload]
</span><a href="GHC.Types.Annotations.html#ann_mod_env"><span class="hs-identifier hs-var hs-var">ann_mod_env</span></a></span><span> </span><span class="annot"><span class="annottext">AnnEnv
</span><a href="#local-6989586621680847072"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-137"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">([AnnPayload] -&gt; [a]) -&gt; NameEnv [AnnPayload] -&gt; NameEnv [a]
forall elt1 elt2. (elt1 -&gt; elt2) -&gt; NameEnv elt1 -&gt; NameEnv elt2
</span><a href="GHC.Types.Name.Env.html#mapNameEnv"><span class="hs-identifier hs-var">mapNameEnv</span></a></span><span> </span><span class="annot"><span class="annottext">[AnnPayload] -&gt; [a]
</span><a href="#local-6989586621680847070"><span class="hs-identifier hs-var">deserAnns</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">AnnEnv -&gt; NameEnv [AnnPayload]
</span><a href="GHC.Types.Annotations.html#ann_name_env"><span class="hs-identifier hs-var hs-var">ann_name_env</span></a></span><span> </span><span class="annot"><span class="annottext">AnnEnv
</span><a href="#local-6989586621680847072"><span class="hs-identifier hs-var">env</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-138"></span><span>    </span><span class="hs-special">)</span><span>
</span><span id="line-139"></span><span>  </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621680847070"><span class="annot"><span class="annottext">deserAnns :: [AnnPayload] -&gt; [a]
</span><a href="#local-6989586621680847070"><span class="hs-identifier hs-var hs-var">deserAnns</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(AnnPayload -&gt; Maybe a) -&gt; [AnnPayload] -&gt; [a]
forall a b. (a -&gt; Maybe b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/Data.Maybe.html#mapMaybe"><span class="hs-identifier hs-var">mapMaybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">([Word8] -&gt; a) -&gt; AnnPayload -&gt; Maybe a
forall a. Typeable a =&gt; ([Word8] -&gt; a) -&gt; AnnPayload -&gt; Maybe a
</span><a href="../../ghc-boot/src/GHC.Serialized.html#fromSerialized"><span class="hs-identifier hs-var">fromSerialized</span></a></span><span> </span><span class="annot"><span class="annottext">[Word8] -&gt; a
</span><a href="#local-6989586621680847073"><span class="hs-identifier hs-var">deserialize</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-140"></span><span>
</span><span id="line-141"></span></pre></body></html>